/**
  ******************************************************************************
  * @file    clk.c
  * @author  ashuai0110
  * @version V1.0
  * @date    2024-01-19
  * @brief   clk驱动,适用于PIC16(L)F1788_9
  *
  ******************************************************************************
  * @attention
  *
  * Change Logs:
  * Date          Author        Notes
  * 2024-01-19    ashuai0110    完成基本内容
  *
  ******************************************************************************
  */

/* 包含头文件-----------------------------------------------------------------*/
#include "clk.h"

/* 私有宏定义-----------------------------------------------------------------*/
#define CLK_IN_OUT              (0u) /* 使用内部还是外部时钟源 0:内部  1:外部 */

/* 私有类型定义---------------------------------------------------------------*/

/* 私有变量-------------------------------------------------------------------*/

/* 全局变量-------------------------------------------------------------------*/

/* 私有函数原型---------------------------------------------------------------*/

/**
  * @brief  clk初始化
  * @param  clkFreq : 时钟频率
  * @retval None
  */
void clk_init(uint8_t clkFreq)
{
#if CLK_IN_OUT
    SPLLEN = 1;
    OSCCONbits.IRCF = 0;
    OSCCONbits.SCS = 0;
#else
    SPLLEN = 0;
    OSCCONbits.IRCF = clkFreq;
    OSCCONbits.SCS = 0x2;
#endif
}

void clk_delay(uint16_t delay)
{
    while(delay--)
    {
        CLRWDT();
    }
}
